<?php

class UsuarioController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    	$this->view->headScript()->appendFile('/js/forms/forms.js');
    	$this->_db = new Application_Model_DbTable_Usuario();
    	$this->view->pagMenu = "usuario";
    	$this->dbPerfil = new Application_Model_DbTable_Perfil();
    	$this->dbParoquia = new Application_Model_DbTable_Paroquia();
    	$this->dbEncontro = new Application_Model_DbTable_Encontro();
    	$this->dbEquipe = new Application_Model_DbTable_Equipe();
    	
    	$this->usrLogado = Zend_Auth::getInstance()->getIdentity();
    }

    public function indexAction()
    {
    	$where = "pa.id_paroquia = ".$this->usrLogado->getIdParoquia();
    	if($this->usrLogado->getRoleId() == "admin"){
        	$where = "1";
        }
    	
    	$where .= ($this->usrLogado->getRoleId() != 'admin')?" AND id_perfil != 1":"";
    	$dados = $this->_db->getListaUsuarios($where);
    	$this->view->dados = $dados;
    }

    public function adicionarAction()
    {
    	if($this->getRequest()->isPost()){
    		//action de inserir
    		$dados = array(
    			'id_usuario' => null,
    			'nome' => $this->getRequest()->getPost("nome"),
    			'email' => $this->getRequest()->getPost("email"),
    			'login' => $this->getRequest()->getPost("login"),
    			'senha' => md5($this->getRequest()->getPost("senha")),
    			'id_perfil' => $this->getRequest()->getPost("id_perfil"),
    			'id_paroquia' => $this->getRequest()->getPost("id_paroquia"),
    			'id_encontro' => $this->getRequest()->getPost("id_encontro"),
    		);
    		$res = $this->_db->insert( $dados );
	    	header("Location: /usuario/");
	    	exit;
    	}else{
    		//form de inserir
    		$this->view->edita = false;
    		$where = "";
    		if($this->usrLogado->getRoleId() == "admin"){
    			$this->view->minhaParoquia = false;
    			$this->view->arrParoquia = $this->dbParoquia->fetchAll();
	    		$where = "1";
    		}else{
    			$this->view->minhaParoquia = true;
    			$this->view->arrParoquia = $this->usrLogado->getIdParoquia();
    			$this->view->arrEncontro = $this->dbEncontro->fetchAll( 'id_paroquia = '.$this->usrLogado->getIdParoquia() );
	    		$where = "id != 1";
    		}    		
    		$this->view->arrPerfil = $this->dbPerfil->fetchAll($where);
    	}
    	$this->renderScript('usuario/form.phtml');
    }

    public function editarAction()
    {
    	if($this->getRequest()->isPost()){
    		//action de editar
	        $dados = array(
		        'nome' => $this->getRequest()->getPost("nome"),
				'email' => $this->getRequest()->getPost("email"),
        		'id_perfil' => $this->getRequest()->getPost("id_perfil"),
        		'id_paroquia' => $this->getRequest()->getPost("id_paroquia"),
        		'id_encontro' => $this->getRequest()->getPost("id_encontro"),
	        );
	        if($this->getRequest()->getPost("senha") != ""){
				array_merge($dados, array('senha' => md5($this->getRequest()->getPost("senha"))));
	        }
	        
// 	        if($this->getRequest()->getPost("id_equipe") > 0){
// 	        	$dadosEncEqp = $this->dbEquipe->fetchRow("id_encontro_equipe = ".$this->getRequest()->getPost("id_equipe"))->toArray();
// 	        	if($dadosEncEqp["id_coordenador1"] != $this->getRequest()->getPost("id_usuario") && $dadosEncEqp["id_coordenador2"] != $this->getRequest()->getPost("id_usuario")){
	        		
// 	        	}
// 	        }
	        
	        $this->_db->update( $dados, 'id_usuario = '.$this->getRequest()->getPost("id_usuario") );
    		header("Location: /usuario/");
    		exit;
    	}else{
    		//form de editar
	    	$this->view->edita = true;
    		$this->view->dados = $this->_db->fetchRow( 'id_usuario = '.$this->getRequest()->getParam("id") );
    		$wherePerfil = "";
    		if($this->usrLogado->getRoleId() == "admin"){
    			$this->view->minhaParoquia = false;
    			$this->view->arrParoquia = $this->dbParoquia->fetchAll();
	    		$wherePerfil = "1";
    		}else{
    			$this->view->minhaParoquia = true;
    			$this->view->arrParoquia = $this->usrLogado->getIdParoquia();
	    		$wherePerfil = "id != 1";
    		}
//     		$this->view->dados->id_equipe = 0;
//     		$whereEncontro = ($this->view->dados->id_encontro > 0)?"id_encontro = ".$this->view->dados->id_encontro:"1";
//     		$whereEquipe = ($this->view->dados->id_equipe > 0)?"id_equipe = ".$this->view->dados->id_equipe:"1";
    		$this->view->arrPerfil = $this->dbPerfil->fetchAll($wherePerfil);
    		$this->view->arrEncontro = $this->dbEncontro->fetchAll();
    		if($this->view->dados->id_encontro > 0){
    			$this->view->arrEquipe = $this->dbEquipe->getEquipesEncontro($this->view->dados->id_encontro);
    		}
    	}
    	
    	$this->renderScript('usuario/form.phtml');
    }

    public function deleteAction()
    {
    	$this->_helper->layout()->disableLayout();
    	$this->_helper->viewRenderer->setNoRender(true);
    	
    	if($this->getRequest()->getParam("id") > 0){
        	//$this->_db->delete( 'id_usuario = '.$this->getRequest()->getParam("id") );
	    	header("Location: /usuario/");
	    	exit;
    	}else{
    		header("Location: /usuario/");
    		exit;
    	}
    }

    public function getEncontrosParoquiaAction()
    {
        $this->_helper->layout()->disableLayout();
    	$this->_helper->viewRenderer->setNoRender(false);
    	$this->view->dados = $this->dbEncontro->fetchAll( 'id_paroquia = '.$this->getRequest()->getParam("id") );
    }

    public function getEquipesEncontroAction()
    {
        $this->_helper->layout()->disableLayout();
    	$this->_helper->viewRenderer->setNoRender(false);
    	$this->view->dados = $this->dbEquipe->getEquipesEncontro( $this->getRequest()->getParam("id") );
    }


}





